//对axios对象进行封装

import axios from 'axios'
import store from "@/store"

//创建axios实例
const instance = axios.create({
    baseURL: 'http://gz.wolfcode.cn/cms',
    timeout: 5000
})



//封装请求拦截器
instance.interceptors.request.use(config =>{

   //判断本地有没有token,有的话,就在请求头中添加token
   const token =  localStorage.getItem("x-auth-token");
   
   if(token){
        config.headers["x-auth-token"] = token;
   }
   
   return config;
},error=>{
    return Promise.reject(error)
})

//封装响应拦截器
instance.interceptors.response.use(res =>{
   let res_data =  res.data;
   console.log("error",res_data);
   if(res_data.code != 0 && res_data.code !=400 && res_data.code !=407 ){
       // 业务失败时候提示用户有问题
         store._actions["showToast/asyncChanIsShowToast"][0]({
            msg:res_data.message,
            type:"danger"
         })
         return false
   }
   return res_data;

},error=>{
    console.log("error",error);
     // 相当于我们在组件中,发送请求之后的catch方法
    store._actions["showToast/asyncChanIsShowToast"][0]({
        msg:err,
        type:"danger"
    })
    // 直接抛出这个异常
    return Promise.reject(error)
})



export default instance;